在學習 Kubernetes 或雲端網路設定之前,我們常常會被一堆指令淹沒:ip link
、ip addr
、ip route
... 這些指令背後到底在管理什麼?
我之前在練習的時候,就遇到一個情況:老師丟了一堆指令,雖然可以背下來,但心裡卻沒有一個清楚的模型。這篇文章我就試著用「生活化的比喻」來解釋 Linux 網路的基本觀念,並且用實際指令來驗證。
一台 Linux 機器上的網路系統,核心就是三件事:
所有的 ip
指令,本質上就是在調整這三件事。
Interface 可以想成是你的電腦和外界世界溝通的「門口」。
eth0
→ 網線插槽 (Ethernet)wlan0
→ Wi-Filo
→ loopback,本機自己跟自己講話docker0
, cni0
→ 容器、Kubernetes 幫你創的虛擬網卡👉 實務操作:
ip link
這個指令會列出你機器上的所有「門」。
有了門,還要有「門牌號碼」,別才知道怎麼找到你。
192.168.1.10/24
→ IP + 子網路遮罩。/24
表示這個區段是 192.168.1.0
到 192.168.1.255
。👉 實務操作:
ip addr
ip addr add 192.168.1.50/24 dev eth0
這樣會在 eth0
這扇門上加上一個新的號碼。
最後,如果你的資料要送到別的網路,電腦需要一張「地圖」。
👉 實務操作:
ip route
ip route add 10.0.0.0/24 via 192.168.1.1 dev eth0
這代表:要去 10.0.0.x
網段,就先送到 192.168.1.1
這台 router。
在實體世界,還有兩個角色:
在 Linux 上,我們通常不直接管 Switch,而是設定好 interface + route,就能完成大部分的工作。
所以總結來說:
下一篇文章,我會延伸到 子網路 (subnet) 與 CIDR 表示法 (/24, /25),並且講清楚「為什麼不同 IP 區段不能重疊」,還會順便提到 Kubernetes 裡面 Pod 為什麼需要 CNI 來配置網路。